package com.shanzmoo.db.module.member.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 优惠券配置
 * </p>
 *
 * @author wangyudi
 * @since 2021-03-22
 */
@Data
public class MemberCouponConfigVO implements Serializable {


    @ApiModelProperty("券配置id，若传则是编辑，不传是新增")
    private Integer id;
    @ApiModelProperty("商户名称")
    private String merchantName;
    /**
     * 优惠券名称
     */
    @ApiModelProperty("优惠券名称")
    private String name;

    /**
     * 发放对象 1-新会员 2-老会员
     */
    @ApiModelProperty("发放对象 1-新会员 2-老会员 3-全部会员")
    private Integer couponObj;

    /**
     * 类型 1-满减券 2-定额有门槛 3-定额无门槛
     */
    @ApiModelProperty("类型 1-满减券 2-定额有门槛 3-定额无门槛")
    private Integer type;
    /**
     * 发券数量
     */
    @ApiModelProperty("优惠券数量")
    private Integer couponCount;
    @ApiModelProperty("已发放数量")
    private Integer issuedCount;
    @ApiModelProperty("已核销数量")
    private Integer verifyCount;
    @ApiModelProperty("优惠券状态 0-未生效 1-已生效")
    private Integer status;
    /**
     * 有效开始时间
     */
    @ApiModelProperty("有效开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 有效结束时间
     */
    @ApiModelProperty("有效结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 满金额(分)
     */
    @ApiModelProperty("满金额(分)")
    private Long ruleFull;

    /**
     * 减金额(分)
     */
    @ApiModelProperty("减金额(分)")
    private Long ruleSubtract;

    /**
     * 1-不与其他规则同时使用
     */
    @ApiModelProperty("1-不与其他规则同时使用")
    private Integer couponLimit;

    /**
     * 失效天数
     */
    @ApiModelProperty("失效天数")
    private Integer failDay;

    /**
     * 每人每天最多可领取
     */
    @ApiModelProperty("每人每天最多可领取")
    private Integer getCountMax;

    /**
     * 每人每天最多可使用
     */
    @ApiModelProperty("每人每天最多可使用")
    private Integer useCountMax;

    /**
     * 发券场景-新会员注册 0-否 1-是
     */
    @ApiModelProperty("发券场景-新会员注册 false-否 true-是")
    private Boolean sendSceneNew;

    /**
     * 发券场景-充值后 0-否 1-是
     */
    @ApiModelProperty("发券场景-充值后 false-否 true-是")
    private Boolean sendSceneRecharge;

    /**
     * 发券场景-消费后 0-否 1-是
     */
    @ApiModelProperty("发券场景-消费后 false-否 true-是")
    private Boolean sendSceneResume;

    /**
     * 充值满多少发券(分)
     */
    @ApiModelProperty("充值满多少发券(分)")
    private Long rechargeAmt;

    /**
     * 消费满多少发券(分)
     */
    @ApiModelProperty("消费满多少发券(分)")
    private Long resumeAmt;


}
